#include <func.h>

#define DEBUG 1

enum workStatus{
    FREE,  //空闲
    BUSY  //忙碌
};

typedef struct
{
    pid_t pid;
    int status;
    int pipeFd;//子进程的管道对端
}processData_t;

//这两个成员位置不可交换
typedef struct {
    int size;//火车头、记录放了多少数据
    char buf[1000];//任何数据都可以装
}train_t;

//创建多个子进程
int make_child(processData_t* workerList,int childNum);

//子进程干什么活
int handleEvent();

//socket,bind,listen的初始化
int tcp_init(char* ip,char* port,int *sock_fd);

//注册监控某个描述符是否可读
int epoll_add(int epfd,int fd);

//发送描述符
int sendFd(int pipeFd,int fd);
//接收描述符
int recvFd(int pipeFd,int *fd);

//发送文件
int transFile(int new_fd);
//循环接收，要接多少字节，接完那么多才会返回
int recvn(int new_fd,void* pStart,int len);